﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NCLCustomerManagement.DataAccess;
using My.DataAccess.Core;
using NCLCustomerManagement.DataTransferObjects.Customer;

namespace NCLCustomerManagement.DataAccess.CustomerRepository
{
    public interface ICustomerRepository : IBaseRepository<CustomerDTO>
    {
        IEnumerable<CustomerDTO> GetCustomersByCriteria(int? regionId, int? productCategoryId, string phone, bool isAdmin);
        IEnumerable<ProductCategoryDTO> GetAllCategories();
        void DeleteCustomer(int[] items);
        void AddNewCustomer(CustomerDTO dto);
        void UpdateCustomer(CustomerDTO dto);
        void RequestChange(CustomerDTO dto, string requester, string requestTo);
        
        bool CheckProductExist(int productId, int customerId);
        CustomerDTO GetCustomerById(int id);

        void AddNewProductCategory(string name);
        void DeleteProductCategory(int id);
        void UpdateProductCategory(int id, string name);        
    }
}
